lectures.alex.balgavy.eu

Lecture notes from university.
git clone git://git.alex.balgavy.eu/lectures.alex.balgavy.eu.git
Log | Files | Refs | Submodules

Synthesis of logic functions.html (6708B)


      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      3 <html><head><link rel="stylesheet" href="sitewide.css" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="exporter-version" content="Evernote Mac 6.13.1 (455785)"/><meta name="altitude" content="-0.07592383772134781"/><meta name="author" content="Alex Balgavy"/><meta name="created" content="2017-11-08 1:42:29 PM +0000"/><meta name="latitude" content="52.33351981586082"/><meta name="longitude" content="4.86778768629921"/><meta name="source" content="desktop.mac"/><meta name="updated" content="2017-11-09 1:00:40 PM +0000"/><title>Synthesis of logic functions</title></head><body><div><span style="font-weight: bold;">Start with a truth table:</span></div><div><div><br/></div><table style="border-collapse: collapse; min-width: 100%;"><colgroup><col style="width: 130px;"/><col style="width: 130px;"/><col style="width: 130px;"/><col style="width: 130px;"/></colgroup><tbody><tr><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div><span style="font-weight: bold;">x₁</span></div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div><span style="font-weight: bold;">x₂</span></div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div><span style="font-weight: bold;">x₃</span></div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div><span style="font-weight: bold;">ƒ₁</span></div></td></tr><tr><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div><span style="background-color: rgb(255, 255, 255);">0</span></div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div><span style="background-color: rgb(255, 255, 255);">1</span></div></td></tr><tr><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td></tr><tr><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td></tr><tr><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td></tr><tr><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td></tr><tr><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td></tr><tr><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>0</div></td></tr><tr><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td><td style="border: 1px solid rgb(219, 219, 219); width: 130px; padding: 8px;"><div>1</div></td></tr></tbody></table><div><span style="font-weight: bold;">Create a sum-of-products form for each row in which ƒ₁ = 1:</span></div></div><div>(x₁, x₂, x₃) = (0, 0, 0) = 1 —&gt; (x̄₁ x̄₂ x̄₃) = 1</div><div>(x₁, x₂, x₃) = (0, 0, 1) = 1 —&gt; (x̄₁ x̄₂ x₃) = 1</div><div>(x₁, x₂, x₃) = (0, 1, 1) = 1 —&gt; (x̄₁ x₂ x₃) = 1</div><div>(x₁, x₂, x₃) = (1, 1, 1) = 1 —&gt; (x₁ x₂ x₃) = 1</div><div><br/></div><div>All of this combined is therefore:</div><div>∴ƒ₁ = x̄₁ x̄₂ x̄₃ + x̄₁ x̄₂ x₃ + x̄₁ x₂ x₃ + x₁ x₂ x₃</div><div><br/></div><div><span style="font-weight: bold;">Then, minimise the function:</span></div><div>The reason for this is to save components and increase performance.</div><div><br/></div><div>Useful logic rules (can be proved using truth tables):</div><div><br/></div><div><img src="Synthesis%20of%20logic%20functions.resources/screenshot.png" height="254" width="571"/></div><div><br/></div><div><ul/></div><div>Can also use <a href="Karnaugh%20Maps.html">Karnaugh Maps</a></div><div><div><br/></div></div><div>With the function from above:</div><div>ƒ₁ = x̄₁ x̄₂ x̄₃ + x̄₁ x̄₂ x₃ + x̄₁ x₂ x₃ + x₁ x₂ x₃</div><div>= x̄₁ x̄₂ (x̄₃ + x₃) + (x̄₁ + x₁) x₂ x₃</div><div>= x̄₁ x̄₂ (1) + (1) x₂ x₃</div><div>= x̄₁ x̄₂ + x₂ x₃</div><div><br/></div><div><b>Don’t-care conditions</b></div><div>Same values of inputs never occur, so we don’t care about their output. If we use four variables to denote numbers 0..9, six combinations will never be used. Therefore their output is a d.</div><div>We can make the output whatever we want it to be. Make it a 1 whenever it enlarges a group of 1s, as it leads to a minimal logic gate implementation.</div></body></html>